import { sendRequest } from '@/http';

const baseUrl = '/admin/disassemp/archive';
const totalBaseUrl = `${baseUrl}/top`;
const perBaseUrl = `${baseUrl}/student`;

// === 总档案 ============================================
/**
 * 分页查询总档案列表
 * @param params
 * @returns
 */
export const queryTotalArchives = (params: {
  pageNum?: number;
  pageSize?: number;
}) => {
  return sendRequest({
    url: `${totalBaseUrl}/queryArchives`,
    method: 'get',
    params: params as any,
  });
};

/**
 * 查询总档案详情
 * @param id
 * @returns
 */
export const queryTotalArchiveInfo = (id: string) => {
  return sendRequest({
    url: `${totalBaseUrl}/queryArchiveInfo`,
    method: 'get',
    params: { id },
  });
};

/**
 * 创建总档案
 * @param data
 * @returns
 */
export const createTotalArchive = (data: {
  title?: string; // 档案标题
  project?: string; // 项目名称
  startDate?: string; // 培训开始时间
  endDate?: string; // 培训结束时间
  address?: string; // 培训地址
  teachers?: string; // 培训老师
  teacherQualificationPhotoResIds?: string[]; // 培训教师资格证照片
  courseTableResIds?: string[]; // 培训课程表
  studentRosterResIds?: string[]; // 培训学生名单
  signInTableResIds?: string; // 培训签到表
  assessmentTableResIds?: string; // 培训考核表
  trainFolioResIds?: string[]; // 培训风采
}) => {
  return sendRequest({
    url: `${totalBaseUrl}/createArchive`,
    method: 'post',
    data: data as any,
  });
};

/**
 * 更新总档案
 * @param data
 * @returns
 */
export const updateTotalArchive = (data: {
  id?: string; // 档案ID
  title?: string; // 档案标题
  project?: string; // 项目名称
  startDate?: string; // 培训开始时间
  endDate?: string; // 培训结束时间
  address?: string; // 培训地址
  teachers?: string; // 培训老师
  teacherQualificationPhotoResIds?: string[]; // 培训教师资格证照片
  courseTableResIds?: string[]; // 培训课程表
  studentRosterResIds?: string[]; // 培训学生名单
  signInTableResIds?: string; // 培训签到表
  assessmentTableResIds?: string; // 培训考核表
  trainFolioResIds?: string[]; // 培训风采
}) => {
  return sendRequest({
    url: `${totalBaseUrl}/updateArchive`,
    method: 'post',
    data: data as any,
  });
};

/**
 * 删除总档案
 * @param id 档案ID
 * @returns
 */
export const deleteTotalArchive = (id: string) => {
  return sendRequest({
    url: `${totalBaseUrl}/deleteArchive`,
    method: 'post',
    data: { id },
  });
};

// === 个人档案 ============================================
/**
 * 分页查询个人档案列表
 * @param params
 * @returns
 */
export const queryPerArchives = (params: {
  pageNum?: number;
  pageSize?: number;
}) => {
  return sendRequest({
    url: `${perBaseUrl}/queryArchives`,
    method: 'get',
    params: params as any,
  });
};

/**
 * 查询个人档案详情
 * @param id
 * @returns
 */
export const queryPerArchiveInfo = (id: string) => {
  return sendRequest({
    url: `${perBaseUrl}/queryArchiveInfo`,
    method: 'get',
    params: { id },
  });
};

/**
 * 创建个人档案
 * @param data
 * @returns
 */
export const createPerArchive = (data: {
  topArchiveId?: string; // 总档案ID
  studentId?: string; // 学生ID
  satisfactionResources?: string[]; // 满意度资源ID列表
  trainingStyleResources?: string; // 培训风采资源ID列表
}) => {
  return sendRequest({
    url: `${perBaseUrl}/createArchive`,
    method: 'post',
    data: data as any,
  });
};

/**
 * 更新个人档案
 * @param data
 * @returns
 */
export const updatePerArchive = (data: {
  id?: string; // 个人档案ID
  topArchiveId?: string; // 总档案ID
  studentId?: string; // 学生ID
  satisfactionResources?: string[]; // 满意度资源ID列表
  trainingStyleResources?: string; // 培训风采资源ID列表
}) => {
  return sendRequest({
    url: `${perBaseUrl}/updateArchive`,
    method: 'post',
    data: data as any,
  });
};

/**
 * 删除个人档案
 * @param id 个人档案ID
 * @returns
 */
export const deletePerArchive = (id: string) => {
  return sendRequest({
    url: `${perBaseUrl}/deleteArchive`,
    method: 'post',
    data: { id },
  });
};

// === 通用 ============================================
/**
 * 生成资源上传TOKEN
 * @param data
 * @returns
 */
export const genResourceUploadToken = (data: { localFileName: string }) => {
  return sendRequest({
    url: `${baseUrl}/genResourceUploadToken`,
    method: 'post',
    data: data as any,
  });
};
